﻿using SIIE_ERP.Codigo;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SIIE_ERP.BaseDatos.Configuracion
{
    public class dbo_Sec_Usuario_RFC
    {
        #region Propiedades

        private string _RFC;
        private string _Usuario;

        #endregion

        #region Constructores

        public dbo_Sec_Usuario_RFC(string RFC, string Usuario)
        {
            this._RFC = RFC;
            this._Usuario = Usuario;
        }


        #endregion

        #region UPDATE
        public static Respuesta Update_FechaLicencia(String UserName, DateTime NuevaFecha, String RFC, String Tipo_Licencia, String Id_Usuario, int perpetual)
        {
            try
            {
                string Query = @"UPDATE
                                dbo_sec_usuario_RFC SET Genero = '@Genero'
                                WHERE 
                                Id_Usuario = @Id_Usuario and RFC = '@RFC'";

                Query = Query.Replace("@Id_Usuario", Id_Usuario);
                Query = Query.Replace("@RFC", RFC);
                Query = Query.Replace("@Genero", CypherClass.CifrarTexto(NuevaFecha.ToString() + "|" + UserName.Replace("'", "''") + "|" + RFC + "|" + Tipo_Licencia + "|" + DateTime.Now + "|" + perpetual));


                return SrvDB.ExecuteQuery_Update(Query);
            }
            catch (Exception Ex)
            {
                return new Respuesta(2, Ex.Message);
            }
        }

        public static Respuesta Update_FechaLicencia_Perpetua(String UserName, DateTime NuevaFecha, String RFC,  String Id_Usuario, int perpetual)
        {
            try
            {
                string Query = @"UPDATE
                                dbo_sec_usuario_RFC SET Genero = '@Genero'
                                WHERE 
                                RFC = '@RFC' and
                                Id_Usuario = @id_Usuario
                                    "
                                    ;

                Query = Query.Replace("@RFC", RFC);
                Query = Query.Replace("@id_Usuario", Id_Usuario);
                Query = Query.Replace("@Genero", CypherClass.CifrarTexto(NuevaFecha + "|" + UserName.Replace("'", "''") + "|" + RFC + "|" + "SinLicencia" + "|" + DateTime.Now + "|" + perpetual));


                return SrvDB.ExecuteQuery_Update(Query);
            }
            catch (Exception Ex)
            {
                return new Respuesta(2, Ex.Message);
            }
        }
        #endregion

        #region SELECT

        public static DataTable Get_Sec_Usuario_RFC()
        {
            string Query = "SELECT * FROM dbo_sec_usuario_rfc ";

            return SrvDB.ExecuteQuery_Get(Query);
        }

        public static DataTable Get_Sec_Usuario_RFC_By_Id_Rfc(string RFC, int Id_Usuario)
        {
            string Query = @"SELECT * 
                             FROM dbo_sec_usuario_rfc 
                        where RFC = '@RFC' and id_Usuario = @Id_Usuario";
            Query = Query.Replace("@RFC", RFC);
            Query = Query.Replace("@Id_Usuario", Id_Usuario.ToString());
            return SrvDB.ExecuteQuery_Get(Query);

        }


        public static DataTable Get_Sec_Usuario_RFC_By_UserName(string UserName)
        {

            string Query = @"select  *
                            from  dbo_sec_usuario 
                            where 
                       
                             username = '@UserNAme'";
            Query = Query.Replace("@UserNAme", UserName.Replace("'", "''"));
            return SrvDB.ExecuteQuery_Get(Query);

        }
        public static DataTable Get_Sec_Usuario_RFC_By_RFC(string RFC)
        {

            string Query = @"select * from dbo_Sec_Usuario_RFC where rfc= '@RFC' ";
            Query = Query.Replace("@RFC", RFC);
            return SrvDB.ExecuteQuery_Get(Query);

        }
        public static DataTable Get_Sec_Usuario_RFC_By_Id(int Id_Usuario)
        {
            string Query = "SELECT * FROM dbo_sec_usuario_rfc as A1, dbo_Sec_Usuario as A2 WHERE A1.Id_Usuario = @Id_Usuario  and A1.Id_Usuario = A2.Id_Usuario";

            //    string Query = "SELECT * FROM dbo_sec_usuario_rfc as A1, dbo_Sec_Usuario as A2 WHERE A2.IsActive and A1.Id_Usuario = @Id_Usuario";
            Query = Query.Replace("@Id_Usuario", Id_Usuario.ToString());


            return SrvDB.ExecuteQuery_Get(Query);
        }
        #endregion


        #region INSERT
        public static Respuesta Insert_Sec_Usuario_RFC(String Id_Usuario, String RFC, DateTime Genero, String UserName, String Tipo_Licencia, int perpetual)
        {
            try
            {
                string Query = @"INSERT INTO dbo_Sec_Usuario_RFC
                             (
	                            Id_Usuario,
	                            RFC,
	                            Genero
                             )
                             VALUES
                             (
                              @Id_Usuario,
                              '@RFC',
	                          '@Genero'
                             )";

                Query = Query.Replace("@Id_Usuario", Id_Usuario);
                Query = Query.Replace("@RFC", RFC);
                Query = Query.Replace("@Genero", CypherClass.CifrarTexto(Genero.ToString() + "|" + UserName + "|" + RFC + "|" + Tipo_Licencia + "|" + DateTime.Now + "|" + perpetual));



                return SrvDB.ExecuteQuery_Insert(Query);
            }
            catch (Exception Ex)
            {
                return new Respuesta(2, Ex.Message);
            }
        }

        #endregion

        #region DELETE
        public static Respuesta Delete_Sec_Usuario_RFC_By_RFC(
           String RFC
       )
        {
            try
            {
                string Query = @"DELETE FROM dbo_sec_usuario_rfc WHERE RFC = '@RFC'";

                Query = Query.Replace("@RFC", RFC.ToString());

                return SrvDB.ExecuteQuery_Delete(Query);


            }
            catch (Exception Ex)
            {
                return new Respuesta(2, Ex.Message);
            }
        }


        #endregion
    }
}
